package com.cmwa.solution.business.product.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cmwa.solution.annotation.MybatisDao;
import com.cmwa.solution.base.entity.SearchParam;
import com.cmwa.solution.business.prdSellChannel.entity.PrdSellChannelVo;
import com.cmwa.solution.business.product.entity.PrdAccountVo;
import com.cmwa.solution.business.product.entity.ProductInfoVo;
import com.cmwa.solution.business.product.entity.TreFeeDetailVo;
import com.cmwa.solution.business.product.entity.ProjectInfoVo;
import com.cmwa.solution.business.product.entity.SubProductInfoVo;

/**
 * 产品运营数据访问层
 * 
 * @author ex-jiangtao
 * @date 2019-01-22 15:33:47
 */
@MybatisDao
public interface ProductManagerDao {

	public ProjectInfoVo getPrdInfoByCode(@Param("prdCode") String prdCode);
	
	public List<ProjectInfoVo> prdInfoListPage(SearchParam sp);
	
	public List<ProjectInfoVo> queryPrdInfoList(@Param("prdsname") String prdsname);
	
	public List<PrdSellChannelVo> findPrdDisChannelData(SearchParam sp);
	
	public List<PrdAccountVo> findPrdAccountData(SearchParam sp);
	
	public List<TreFeeDetailVo> findPrdFeeData(SearchParam sp);
	
	public List<ProjectInfoVo> findProductData(@Param("prjprcstatStr") String[] prjprcstatStr,@Param("empId") String empId);
	
	public List<ProjectInfoVo> prdInfoList(SearchParam sp);
	
	public List<SubProductInfoVo> findSubProductInfo(@Param("prjcode") String prjcode);

	public List<ProjectInfoVo> queryMatchProjectInfoList(SearchParam sp);
	
	public List<ProjectInfoVo> queryMatchProductInfoList(SearchParam sp);
	
	SubProductInfoVo querySubPrdInfoBySubPrdCode(@Param("subPrdCode") String subPrdCode);
	
	public List<ProjectInfoVo> queryMatchSubPrdInfoList(SearchParam sp);
	
	public List<ProjectInfoVo> queryMatchSubPrdLineList(SearchParam sp);
	
	public void saveProjectData(ProjectInfoVo projectInfoVo);
	
	public void saveProductData(ProductInfoVo productInfoVo);
	
	public void saveSubProductData(SubProductInfoVo subProductInfoVo);
	
	public void projectUpd(SearchParam sp);
	
	public void subProductUpd(SearchParam sp);
	
	public void projectDel(SearchParam sp);
	
	public void productDel(SearchParam sp);
	
	public void subProductDel(SearchParam sp);
	
	public List<PrdAccountVo> queryAccountTypeList(SearchParam sp);
	
	public void addPrjAccountRelations(@Param("accId") String accId,@Param("prjcode") String prjcode,@Param("createId") String createId);
	
	public void addPrdAccountRelations(@Param("accId") String accId,@Param("prdcode") String prjcode,@Param("createId") String createId);
	
	public void addBankAccount(PrdAccountVo prdAccountVo);
	
	public void delPrjAccountRelations(@Param("accIds") String accIds);
	
	public void delPrdAccountRelations(@Param("accIds") String accIds);
	
	public List<PrdAccountVo> queryBankAccountInfoList(SearchParam sp);
	
	public int findCountPrjAccountRelById(@Param("accId") String accId,@Param("prjcode") String prjcode);
	
	public int findCountPrdAccountRelById(@Param("accId") String accId,@Param("prdcode") String prdcode);
}
